package com.yuanshi.food.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import lombok.Data;

/**
 * 用户表（存储微信小程序用户基础信息）
 * @TableName user
 */
@TableName(value ="user")
@Data
public class User {
    /**
     * 用户ID（主键）
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 业务标识（固定42位字符串，用于业务唯一追溯）
     */
    @TableField(value = "biz_code")
    private String bizCode;

    /**
     * 微信OpenID（唯一标识用户）
     */
    @TableField(value = "open_id")
    private String openId;

    /**
     * 用户昵称（脱敏存储特殊字符）
     */
    @TableField(value = "nickname")
    private String nickname;

    /**
     * 用户头像URL（支持HTTPS）
     */
    @TableField(value = "avatar_url")
    private String avatarUrl;

    /**
     * 手机号（按手册要求脱敏，存储为138****5678格式）
     */
    @TableField(value = "phone")
    private String phone;

    /**
     * 用户状态：1-正常，2-禁用（符合手册“状态字段枚举化”要求）
     */
    @TableField(value = "user_status")
    private Object userStatus;

    /**
     * 逻辑删除：0-未删除，1-已删除（遵循手册“避免物理删除”原则）
     */
    @TableField(value = "is_deleted")
    private Integer isDeleted;

    /**
     * 创建时间（手册“时间字段统一格式”要求）
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 更新时间（自动更新）
     */
    @TableField(value = "update_time")
    private Date updateTime;
}